package com.sl.modulars.trans.equipment.service;

import com.github.pagehelper.PageInfo;
import com.sl.modulars.trans.equipment.entity.*;
import com.sl.modulars.trans.equipment.entity.query.*;
import com.sl.modulars.trans.equipment.entity.vo.*;

import java.util.List;
import java.util.Map;

public interface IEquipmentService {


    /**
     * 分页 查询设备清单数据
     * @param odsGmdcMachineQuery
     * @return
     */
    PageInfo<OdsGmdcMachineVO> getOdsGmdcMachinePage(OdsGmdcMachineQuery odsGmdcMachineQuery);


    /**
     * 从设备状态维度查询对应的数据
     * @param groupId 分组编号可传递或不传递
     * @return
     */
    Map<String,Object> getOdsGmdcMachineCount(String groupId);


    /**
     * 根据设备资产编号 查询设备运行参数最新的一条数据
     * @param machineNumber
     * @return
     */
    OdsGmdcParamMachine getOdsGmdcParamMachineByMachineNumber(String machineNumber);





    /**
     * 根据设备资产编号查询设备详情数据
     * @param machineNumber 设备资产编号
     * @return
     */
    OdsGmdcMachineVO getOdsGmdcMachineByMachineNumber(String machineNumber);


    /**
     * 查询某个设备的设备数据详情
     * @param machineNumber
     * @param startTime
     * @param endTime
     * @return
     */
    List<OdsGmdcParamMachine> getOdsGmdcParamMachineByMachineNumberAndTime(String machineNumber,String startTime,String endTime);


    /**
     * 查询工装信息列表分页数据信息
     * @param odsGmdcToolingThingsQuery
     * @return
     */
    PageInfo<OdsGmdcToolingThings> getOdsGmdcToolingThingPage(OdsGmdcToolingThingsQuery odsGmdcToolingThingsQuery);


    /**
     * 查询工装信息统计数据
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcToolingThingCount(String groupId);




    /**
     * 查询工刀量具列表数据
     * @param odsGmdcMeasuringToolsQuery
     * @return
     */
    PageInfo<OdsGmdcMeasuringTools> getOdsGmdcMeasuringToolsPage(OdsGmdcMeasuringToolsQuery odsGmdcMeasuringToolsQuery);


    /**
     * 查询工刀量具设备数据
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcMeasuringToolsCount(String groupId);


    /**
     * 查询物料编码列表数据
     * @param odsGmdcMaterialQuery
     * @return
     */
    PageInfo<OdsGmdcMaterialVO> getOdsGmdcMaterialPage(OdsGmdcMaterialQuery odsGmdcMaterialQuery);




    /**
     * 查询物料总数
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcMaterialCount(String groupId);


    /**
     * 查询用户列表数据
     * @param odsGmdcPersonnelQuery
     * @return
     */
    PageInfo<OdsGmdcPersonnel> getOdsGmdcPersonnelPage(OdsGmdcPersonnelQuery odsGmdcPersonnelQuery);


    /**
     * 构建厂区树状结构
     * @param treeType
     * @return
     */
    List<OdsTreeVO> getOdsTreeByType(String treeType);

    List<OdsTreeVO> getOdsTreeByTypeDevice(String treeType);



    /**
     * 查询人员数据统计详情
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcPersonnelCount(String groupId);



    /**
     * 查询计量设备列表数据
     * @param odsGmdcMeteringEquipmentQuery
     * @return
     */
    PageInfo<OdsGmdcMeteringEquipment> getOdsGmdcMeteringEquipmentPage(OdsGmdcMeteringEquipmentQuery odsGmdcMeteringEquipmentQuery);


    /**
     * 查询计量设备 展示维度数据
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcMeteringEquipmentCount(String groupId);


    /**
     * 查询测量设备树结构
     * @param treeType
     * @return
     */
    List<OdsTreeVO> getOdsTreeByTypeGmdcMetering(String treeType);



    /**
     * 查询计量设备采集详情 分页查询
     * @param odsFileGmdcEquipmentGatherQuery
     * @return
     */
    PageInfo<OdsFileGmdcEquipmentGatherVO> getOdsFileGmdcEquipmentGather(OdsFileGmdcEquipmentGatherQuery odsFileGmdcEquipmentGatherQuery);


    /**
     * 查询指标卡 计量设备采集详情
     * @return deviceId
     */
    Map<String,Object> getOdsTreeByTypeGmdcMeteringCount(String deviceId);



    /**
     * 查看采集数据详情
     * @param odsFileEquipmenCaptureDetailsQuery
     * @return
     */
    PageInfo<OdsFileEquipmenCaptureDetails> getOdsFileEquipmenCaptureDetailsByGid(OdsFileEquipmenCaptureDetailsQuery odsFileEquipmenCaptureDetailsQuery);


    /**
     * 查询环境折线图
     * @param strSn
     * @return
     */
    List<DwdEnvironmentData> getDwdEnvironmentDataByEnvironmentByStrSn(String strSn);


    /**
     * 查询环境列表数据
     * @param dwdEnvironmentDataQuery
     * @return
     */
    PageInfo<DwdEnvironmentDataVO> getDwdEnvironmentDataPage(DwdEnvironmentDataQuery dwdEnvironmentDataQuery);





    /**
     * 查询环境 采集数量 异常环境数 查询环境设备总数
     * @param strSn
     * @return
     */
    Map<String,Object> getDwdEnvironmentDataByStrSn(String strSn);



    /**
     * 查询环境设备树结构
     * @param treeType
     * @return
     */
    List<OdsTreeVO> getOdsTreeByTypeEnvironmentData(String treeType);



    OdsGmdcMachineVO getOdsGmdcMachineByNum(String machineNumber);
}
